﻿using System.Collections.Generic;
using TSU.FAMC.ComputerEngineering.Classes.Circuits.Basis;
using TSU.FAMC.ComputerEngineering.Classes.Interfaces;

namespace TSU.FAMC.ComputerEngineering.Classes.Circuits.Readers
{
    /// <summary>
    /// Base class for circuit readers.
    /// </summary>
    public abstract class CircuitReader : IReader
    {
        // Properties

        /// <summary>
        /// Circuit built within external data.
        /// </summary>
        public Circuit Circuit { get; protected set; }

        /// <summary>
        /// Number of gates in the circuit.
        /// </summary>
        public int GatesCount { get; protected set; }

        /// <summary>
        /// List of created elements.
        /// </summary>
        public List<Element> Elements { get; protected set; }


        // Methods

        /// <summary>
        /// Reads circuit object from external data.
        /// </summary>
        public abstract void Read();
    }
}
